home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / CIncludes / MediaHandlers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  20.1 KB  |  591 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __MEDIAHANDLERS__
  18. #define __MEDIAHANDLERS__
  19.  
  20. #ifndef __CONDITIONALMACROS__
  21. #include <ConditionalMacros.h>
  22. #endif
  23. #ifndef __MACTYPES__
  24. #include <MacTypes.h>
  25. #endif
  26. #ifndef __COMPONENTS__
  27. #include <Components.h>
  28. #endif
  29. #ifndef __MOVIES__
  30. #include <Movies.h>
  31. #endif
  32.  
  33.  
  34.  
  35. #if PRAGMA_ONCE
  36. #pragma once
  37. #endif
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. #if PRAGMA_IMPORT
  44. #pragma import on
  45. #endif
  46.  
  47. #if PRAGMA_STRUCT_ALIGN
  48.     #pragma options align=mac68k
  49. #elif PRAGMA_STRUCT_PACKPUSH
  50.     #pragma pack(push, 2)
  51. #elif PRAGMA_STRUCT_PACK
  52.     #pragma pack(2)
  53. #endif
  54.  
  55. typedef CALLBACK_API( void , PrePrerollCompleteProcPtr )(MediaHandler mh, OSErr err, void *refcon);
  56. typedef STACK_UPP_TYPE(PrePrerollCompleteProcPtr)                 PrePrerollCompleteUPP;
  57.  
  58. enum {
  59.     handlerHasSpatial            = 1 << 0,
  60.     handlerCanClip                = 1 << 1,
  61.     handlerCanMatte                = 1 << 2,
  62.     handlerCanTransferMode        = 1 << 3,
  63.     handlerNeedsBuffer            = 1 << 4,
  64.     handlerNoIdle                = 1 << 5,
  65.     handlerNoScheduler            = 1 << 6,
  66.     handlerWantsTime            = 1 << 7,
  67.     handlerCGrafPortOnly        = 1 << 8,
  68.     handlerCanSend                = 1 << 9,
  69.     handlerCanHandleComplexMatrix = 1 << 10,
  70.     handlerWantsDestinationPixels = 1 << 11,                    /* DNC Code: New flag to indicate the handler sends image data to modifier tracks*/
  71.     handlerCanSendImageData        = 1 << 12
  72. };
  73.  
  74. /* media task flags */
  75.  
  76. enum {
  77.     mMustDraw                    = 1 << 3,
  78.     mAtEnd                        = 1 << 4,
  79.     mPreflightDraw                = 1 << 5,
  80.     mSyncDrawing                = 1 << 6
  81. };
  82.  
  83. /* media task result flags */
  84.  
  85. enum {
  86.     mDidDraw                    = 1 << 0,
  87.     mNeedsToDraw                = 1 << 2,
  88.     mDrawAgain                    = 1 << 3,
  89.     mPartialDraw                = 1 << 4
  90. };
  91.  
  92.  
  93. enum {
  94.     forceUpdateRedraw            = 1 << 0,
  95.     forceUpdateNewBuffer        = 1 << 1
  96. };
  97.  
  98. /* media hit test flags */
  99.  
  100. enum {
  101.     mHitTestBounds                = 1L << 0,                        /*    point must only be within targetRefCon's bounding box */
  102.     mHitTestImage                = 1L << 1,                        /*  point must be within the shape of the targetRefCon's image */
  103.     mHitTestInvisible            = 1L << 2,                        /*  invisible targetRefCon's may be hit tested */
  104.     mHitTestIsClick                = 1L << 3                        /*  for codecs that want mouse events */
  105. };
  106.  
  107. /* media is opaque flags */
  108.  
  109. enum {
  110.     mOpaque                        = 1L << 0,
  111.     mInvisible                    = 1L << 1
  112. };
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. struct GetMovieCompleteParams {
  121.     short                             version;
  122.     Movie                             theMovie;
  123.     Track                             theTrack;
  124.     Media                             theMedia;
  125.     TimeScale                         movieScale;
  126.     TimeScale                         mediaScale;
  127.     TimeValue                         movieDuration;
  128.     TimeValue                         trackDuration;
  129.     TimeValue                         mediaDuration;
  130.     Fixed                             effectiveRate;
  131.     TimeBase                         timeBase;
  132.     short                             volume;
  133.     Fixed                             width;
  134.     Fixed                             height;
  135.     MatrixRecord                     trackMovieMatrix;
  136.     CGrafPtr                         moviePort;
  137.     GDHandle                         movieGD;
  138.     PixMapHandle                     trackMatte;
  139.     QTAtomContainer                 inputMap;
  140. };
  141. typedef struct GetMovieCompleteParams    GetMovieCompleteParams;
  142.  
  143. enum {
  144.     kMediaVideoParamBrightness    = 1,
  145.     kMediaVideoParamContrast    = 2,
  146.     kMediaVideoParamHue            = 3,
  147.     kMediaVideoParamSharpness    = 4,
  148.     kMediaVideoParamSaturation    = 5,
  149.     kMediaVideoParamBlackLevel    = 6,
  150.     kMediaVideoParamWhiteLevel    = 7
  151. };
  152.  
  153.  
  154. typedef Handle *                        dataHandlePtr;
  155. typedef dataHandlePtr *                    dataHandleHandle;
  156.  
  157.  
  158.  
  159. /* MediaCallRange2 */
  160. /* These are unique to each type of media handler */
  161. /* They are also included in the public interfaces */
  162.  
  163.  
  164. /***** These are the calls for dealing with the Generic media handler *****/
  165. EXTERN_API( ComponentResult )
  166. MediaInitialize                    (MediaHandler             mh,
  167.                                  GetMovieCompleteParams * gmc)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0501, 0x7000, 0xA82A);
  168.  
  169. EXTERN_API( ComponentResult )
  170. MediaSetHandlerCapabilities        (MediaHandler             mh,
  171.                                  long                     flags,
  172.                                  long                     flagsMask)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0502, 0x7000, 0xA82A);
  173.  
  174. EXTERN_API( ComponentResult )
  175. MediaIdle                        (MediaHandler             mh,
  176.                                  TimeValue                 atMediaTime,
  177.                                  long                     flagsIn,
  178.                                  long *                    flagsOut,
  179.                                  const TimeRecord *        movieTime)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0503, 0x7000, 0xA82A);
  180.  
  181. EXTERN_API( ComponentResult )
  182. MediaGetMediaInfo                (MediaHandler             mh,
  183.                                  Handle                 h)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0504, 0x7000, 0xA82A);
  184.  
  185. EXTERN_API( ComponentResult )
  186. MediaPutMediaInfo                (MediaHandler             mh,
  187.                                  Handle                 h)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0505, 0x7000, 0xA82A);
  188.  
  189. EXTERN_API( ComponentResult )
  190. MediaSetActive                    (MediaHandler             mh,
  191.                                  Boolean                 enableMedia)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0506, 0x7000, 0xA82A);
  192.  
  193. EXTERN_API( ComponentResult )
  194. MediaSetRate                    (MediaHandler             mh,
  195.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0507, 0x7000, 0xA82A);
  196.  
  197. EXTERN_API( ComponentResult )
  198. MediaGGetStatus                    (MediaHandler             mh,
  199.                                  ComponentResult *        statusErr)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0508, 0x7000, 0xA82A);
  200.  
  201. EXTERN_API( ComponentResult )
  202. MediaTrackEdited                (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0509, 0x7000, 0xA82A);
  203.  
  204. EXTERN_API( ComponentResult )
  205. MediaSetMediaTimeScale            (MediaHandler             mh,
  206.                                  TimeScale                 newTimeScale)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x050A, 0x7000, 0xA82A);
  207.  
  208. EXTERN_API( ComponentResult )
  209. MediaSetMovieTimeScale            (MediaHandler             mh,
  210.                                  TimeScale                 newTimeScale)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x050B, 0x7000, 0xA82A);
  211.  
  212. EXTERN_API( ComponentResult )
  213. MediaSetGWorld                    (MediaHandler             mh,
  214.                                  CGrafPtr                 aPort,
  215.                                  GDHandle                 aGD)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x050C, 0x7000, 0xA82A);
  216.  
  217. EXTERN_API( ComponentResult )
  218. MediaSetDimensions                (MediaHandler             mh,
  219.                                  Fixed                     width,
  220.                                  Fixed                     height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x050D, 0x7000, 0xA82A);
  221.  
  222. EXTERN_API( ComponentResult )
  223. MediaSetClip                    (MediaHandler             mh,
  224.                                  RgnHandle                 theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x050E, 0x7000, 0xA82A);
  225.  
  226. EXTERN_API( ComponentResult )
  227. MediaSetMatrix                    (MediaHandler             mh,
  228.                                  MatrixRecord *            trackMovieMatrix)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x050F, 0x7000, 0xA82A);
  229.  
  230. EXTERN_API( ComponentResult )
  231. MediaGetTrackOpaque                (MediaHandler             mh,
  232.                                  Boolean *                trackIsOpaque)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0510, 0x7000, 0xA82A);
  233.  
  234. EXTERN_API( ComponentResult )
  235. MediaSetGraphicsMode            (MediaHandler             mh,
  236.                                  long                     mode,
  237.                                  const RGBColor *        opColor)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0511, 0x7000, 0xA82A);
  238.  
  239. EXTERN_API( ComponentResult )
  240. MediaGetGraphicsMode            (MediaHandler             mh,
  241.                                  long *                    mode,
  242.                                  RGBColor *                opColor)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0512, 0x7000, 0xA82A);
  243.  
  244. EXTERN_API( ComponentResult )
  245. MediaGSetVolume                    (MediaHandler             mh,
  246.                                  short                     volume)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0513, 0x7000, 0xA82A);
  247.  
  248. EXTERN_API( ComponentResult )
  249. MediaSetSoundBalance            (MediaHandler             mh,
  250.                                  short                     balance)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0514, 0x7000, 0xA82A);
  251.  
  252. EXTERN_API( ComponentResult )
  253. MediaGetSoundBalance            (MediaHandler             mh,
  254.                                  short *                balance)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0515, 0x7000, 0xA82A);
  255.  
  256. EXTERN_API( ComponentResult )
  257. MediaGetNextBoundsChange        (MediaHandler             mh,
  258.                                  TimeValue *            when)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0516, 0x7000, 0xA82A);
  259.  
  260. EXTERN_API( ComponentResult )
  261. MediaGetSrcRgn                    (MediaHandler             mh,
  262.                                  RgnHandle                 rgn,
  263.                                  TimeValue                 atMediaTime)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0517, 0x7000, 0xA82A);
  264.  
  265. EXTERN_API( ComponentResult )
  266. MediaPreroll                    (MediaHandler             mh,
  267.                                  TimeValue                 time,
  268.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0518, 0x7000, 0xA82A);
  269.  
  270. EXTERN_API( ComponentResult )
  271. MediaSampleDescriptionChanged    (MediaHandler             mh,
  272.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0519, 0x7000, 0xA82A);
  273.  
  274. EXTERN_API( ComponentResult )
  275. MediaHasCharacteristic            (MediaHandler             mh,
  276.                                  OSType                 characteristic,
  277.                                  Boolean *                hasIt)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x051A, 0x7000, 0xA82A);
  278.  
  279. EXTERN_API( ComponentResult )
  280. MediaGetOffscreenBufferSize        (MediaHandler             mh,
  281.                                  Rect *                    bounds,
  282.                                  short                     depth,
  283.                                  CTabHandle             ctab)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x051B, 0x7000, 0xA82A);
  284.  
  285. EXTERN_API( ComponentResult )
  286. MediaSetHints                    (MediaHandler             mh,
  287.                                  long                     hints)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x051C, 0x7000, 0xA82A);
  288.  
  289. EXTERN_API( ComponentResult )
  290. MediaGetName                    (MediaHandler             mh,
  291.                                  Str255                 name,
  292.                                  long                     requestedLanguage,
  293.                                  long *                    actualLanguage)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x051D, 0x7000, 0xA82A);
  294.  
  295. EXTERN_API( ComponentResult )
  296. MediaForceUpdate                (MediaHandler             mh,
  297.                                  long                     forceUpdateFlags)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x051E, 0x7000, 0xA82A);
  298.  
  299. EXTERN_API( ComponentResult )
  300. MediaGetDrawingRgn                (MediaHandler             mh,
  301.                                  RgnHandle *            partialRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x051F, 0x7000, 0xA82A);
  302.  
  303. EXTERN_API( ComponentResult )
  304. MediaGSetActiveSegment            (MediaHandler             mh,
  305.                                  TimeValue                 activeStart,
  306.                                  TimeValue                 activeDuration)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0520, 0x7000, 0xA82A);
  307.  
  308. EXTERN_API( ComponentResult )
  309. MediaInvalidateRegion            (MediaHandler             mh,
  310.                                  RgnHandle                 invalRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0521, 0x7000, 0xA82A);
  311.  
  312. EXTERN_API( ComponentResult )
  313. MediaGetNextStepTime            (MediaHandler             mh,
  314.                                  short                     flags,
  315.                                  TimeValue                 mediaTimeIn,
  316.                                  TimeValue *            mediaTimeOut,
  317.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x000E, 0x0522, 0x7000, 0xA82A);
  318.  
  319. EXTERN_API( ComponentResult )
  320. MediaSetNonPrimarySourceData    (MediaHandler             mh,
  321.                                  long                     inputIndex,
  322.                                  long                     dataDescriptionSeed,
  323.                                  Handle                 dataDescription,
  324.                                  void *                    data,
  325.                                  long                     dataSize,
  326.                                  ICMCompletionProcRecordPtr  asyncCompletionProc,
  327.                                  UniversalProcPtr         transferProc,
  328.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0020, 0x0523, 0x7000, 0xA82A);
  329.  
  330. EXTERN_API( ComponentResult )
  331. MediaChangedNonPrimarySource    (MediaHandler             mh,
  332.                                  long                     inputIndex)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0524, 0x7000, 0xA82A);
  333.  
  334. EXTERN_API( ComponentResult )
  335. MediaTrackReferencesChanged        (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0525, 0x7000, 0xA82A);
  336.  
  337. EXTERN_API( ComponentResult )
  338. MediaGetSampleDataPointer        (MediaHandler             mh,
  339.                                  long                     sampleNum,
  340.                                  Ptr *                    dataPtr,
  341.                                  long *                    dataSize,
  342.                                  long *                    sampleDescIndex)                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0526, 0x7000, 0xA82A);
  343.  
  344. EXTERN_API( ComponentResult )
  345. MediaReleaseSampleDataPointer    (MediaHandler             mh,
  346.                                  long                     sampleNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0527, 0x7000, 0xA82A);
  347.  
  348. EXTERN_API( ComponentResult )
  349. MediaTrackPropertyAtomChanged    (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0528, 0x7000, 0xA82A);
  350.  
  351. EXTERN_API( ComponentResult )
  352. MediaSetTrackInputMapReference    (MediaHandler             mh,
  353.                                  QTAtomContainer         inputMap)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0529, 0x7000, 0xA82A);
  354.  
  355.  
  356. EXTERN_API( ComponentResult )
  357. MediaSetVideoParam                (MediaHandler             mh,
  358.                                  long                     whichParam,
  359.                                  unsigned short *        value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x052B, 0x7000, 0xA82A);
  360.  
  361. EXTERN_API( ComponentResult )
  362. MediaGetVideoParam                (MediaHandler             mh,
  363.                                  long                     whichParam,
  364.                                  unsigned short *        value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x052C, 0x7000, 0xA82A);
  365.  
  366. EXTERN_API( ComponentResult )
  367. MediaCompare                    (MediaHandler             mh,
  368.                                  Boolean *                isOK,
  369.                                  Media                     srcMedia,
  370.                                  ComponentInstance         srcMediaComponent)                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x052D, 0x7000, 0xA82A);
  371.  
  372. EXTERN_API( ComponentResult )
  373. MediaGetClock                    (MediaHandler             mh,
  374.                                  ComponentInstance *    clock)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x052E, 0x7000, 0xA82A);
  375.  
  376. EXTERN_API( ComponentResult )
  377. MediaSetSoundOutputComponent    (MediaHandler             mh,
  378.                                  Component                 outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x052F, 0x7000, 0xA82A);
  379.  
  380. EXTERN_API( ComponentResult )
  381. MediaGetSoundOutputComponent    (MediaHandler             mh,
  382.                                  Component *            outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0530, 0x7000, 0xA82A);
  383.  
  384. EXTERN_API( ComponentResult )
  385. MediaSetSoundLocalizationData    (MediaHandler             mh,
  386.                                  Handle                 data)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0531, 0x7000, 0xA82A);
  387.  
  388.  
  389.  
  390.  
  391. EXTERN_API( ComponentResult )
  392. MediaGetInvalidRegion            (MediaHandler             mh,
  393.                                  RgnHandle                 rgn)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053C, 0x7000, 0xA82A);
  394.  
  395.  
  396. EXTERN_API( ComponentResult )
  397. MediaSampleDescriptionB2N        (MediaHandler             mh,
  398.                                  SampleDescriptionHandle  sampleDescriptionH)                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053E, 0x7000, 0xA82A);
  399.  
  400. EXTERN_API( ComponentResult )
  401. MediaSampleDescriptionN2B        (MediaHandler             mh,
  402.                                  SampleDescriptionHandle  sampleDescriptionH)                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053F, 0x7000, 0xA82A);
  403.  
  404. EXTERN_API( ComponentResult )
  405. MediaQueueNonPrimarySourceData    (MediaHandler             mh,
  406.                                  long                     inputIndex,
  407.                                  long                     dataDescriptionSeed,
  408.                                  Handle                 dataDescription,
  409.                                  void *                    data,
  410.                                  long                     dataSize,
  411.                                  ICMCompletionProcRecordPtr  asyncCompletionProc,
  412.                                  const ICMFrameTimeRecord * frameTime,
  413.                                  UniversalProcPtr         transferProc,
  414.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0024, 0x0540, 0x7000, 0xA82A);
  415.  
  416. EXTERN_API( ComponentResult )
  417. MediaFlushNonPrimarySourceData    (MediaHandler             mh,
  418.                                  long                     inputIndex)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0541, 0x7000, 0xA82A);
  419.  
  420.  
  421. EXTERN_API( ComponentResult )
  422. MediaGetURLLink                    (MediaHandler             mh,
  423.                                  Point                     displayWhere,
  424.                                  Handle *                urlLink)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0543, 0x7000, 0xA82A);
  425.  
  426.  
  427. EXTERN_API( ComponentResult )
  428. MediaMakeMediaTimeTable            (MediaHandler             mh,
  429.                                  long **                offsets,
  430.                                  TimeValue                 startTime,
  431.                                  TimeValue                 endTime,
  432.                                  TimeValue                 timeIncrement,
  433.                                  short                     firstDataRefIndex,
  434.                                  short                     lastDataRefIndex,
  435.                                  long *                    retDataRefSkew)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x0545, 0x7000, 0xA82A);
  436.  
  437. EXTERN_API( ComponentResult )
  438. MediaHitTestForTargetRefCon        (MediaHandler             mh,
  439.                                  long                     flags,
  440.                                  Point                     loc,
  441.                                  long *                    targetRefCon)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0546, 0x7000, 0xA82A);
  442.  
  443. EXTERN_API( ComponentResult )
  444. MediaHitTestTargetRefCon        (MediaHandler             mh,
  445.                                  long                     targetRefCon,
  446.                                  long                     flags,
  447.                                  Point                     loc,
  448.                                  Boolean *                wasHit)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0547, 0x7000, 0xA82A);
  449.  
  450. EXTERN_API( ComponentResult )
  451. MediaGetActionsForQTEvent        (MediaHandler             mh,
  452.                                  QTEventRecordPtr         event,
  453.                                  long                     targetRefCon,
  454.                                  QTAtomContainer *        container,
  455.                                  QTAtom *                atom)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0548, 0x7000, 0xA82A);
  456.  
  457. EXTERN_API( ComponentResult )
  458. MediaDisposeTargetRefCon        (MediaHandler             mh,
  459.                                  long                     targetRefCon)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0549, 0x7000, 0xA82A);
  460.  
  461. EXTERN_API( ComponentResult )
  462. MediaTargetRefConsEqual            (MediaHandler             mh,
  463.                                  long                     firstRefCon,
  464.                                  long                     secondRefCon,
  465.                                  Boolean *                equal)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x054A, 0x7000, 0xA82A);
  466.  
  467. EXTERN_API( ComponentResult )
  468. MediaSetActionsCallback            (MediaHandler             mh,
  469.                                  ActionsUPP             actionsCallbackProc,
  470.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x054B, 0x7000, 0xA82A);
  471.  
  472. EXTERN_API( ComponentResult )
  473. MediaPrePrerollBegin            (MediaHandler             mh,
  474.                                  TimeValue                 time,
  475.                                  Fixed                     rate,
  476.                                  PrePrerollCompleteUPP     completeProc,
  477.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x054C, 0x7000, 0xA82A);
  478.  
  479. EXTERN_API( ComponentResult )
  480. MediaPrePrerollCancel            (MediaHandler             mh,
  481.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x054D, 0x7000, 0xA82A);
  482.  
  483. EXTERN_API( ComponentResult )
  484. MediaExecuteOneAction            (MediaHandler             mh,
  485.                                  QTAtomContainer         container,
  486.                                  QTAtom                 actionAtom)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x054E, 0x7000, 0xA82A);
  487.  
  488. EXTERN_API( ComponentResult )
  489. MediaEnterEmptyEdit                (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x054F, 0x7000, 0xA82A);
  490.  
  491. EXTERN_API( ComponentResult )
  492. MediaCurrentMediaQueuedData        (MediaHandler             mh,
  493.                                  long *                    milliSecs)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0550, 0x7000, 0xA82A);
  494.  
  495.  
  496.  
  497.  
  498. /* selectors for component calls */
  499. enum {
  500.     kMediaInitializeSelect                            = 0x0501,
  501.     kMediaSetHandlerCapabilitiesSelect                = 0x0502,
  502.     kMediaIdleSelect                                = 0x0503,
  503.     kMediaGetMediaInfoSelect                        = 0x0504,
  504.     kMediaPutMediaInfoSelect                        = 0x0505,
  505.     kMediaSetActiveSelect                            = 0x0506,
  506.     kMediaSetRateSelect                                = 0x0507,
  507.     kMediaGGetStatusSelect                            = 0x0508,
  508.     kMediaTrackEditedSelect                            = 0x0509,
  509.     kMediaSetMediaTimeScaleSelect                    = 0x050A,
  510.     kMediaSetMovieTimeScaleSelect                    = 0x050B,
  511.     kMediaSetGWorldSelect                            = 0x050C,
  512.     kMediaSetDimensionsSelect                        = 0x050D,
  513.     kMediaSetClipSelect                                = 0x050E,
  514.     kMediaSetMatrixSelect                            = 0x050F,
  515.     kMediaGetTrackOpaqueSelect                        = 0x0510,
  516.     kMediaSetGraphicsModeSelect                        = 0x0511,
  517.     kMediaGetGraphicsModeSelect                        = 0x0512,
  518.     kMediaGSetVolumeSelect                            = 0x0513,
  519.     kMediaSetSoundBalanceSelect                        = 0x0514,
  520.     kMediaGetSoundBalanceSelect                        = 0x0515,
  521.     kMediaGetNextBoundsChangeSelect                    = 0x0516,
  522.     kMediaGetSrcRgnSelect                            = 0x0517,
  523.     kMediaPrerollSelect                                = 0x0518,
  524.     kMediaSampleDescriptionChangedSelect            = 0x0519,
  525.     kMediaHasCharacteristicSelect                    = 0x051A,
  526.     kMediaGetOffscreenBufferSizeSelect                = 0x051B,
  527.     kMediaSetHintsSelect                            = 0x051C,
  528.     kMediaGetNameSelect                                = 0x051D,
  529.     kMediaForceUpdateSelect                            = 0x051E,
  530.     kMediaGetDrawingRgnSelect                        = 0x051F,
  531.     kMediaGSetActiveSegmentSelect                    = 0x0520,
  532.     kMediaInvalidateRegionSelect                    = 0x0521,
  533.     kMediaGetNextStepTimeSelect                        = 0x0522,
  534.     kMediaSetNonPrimarySourceDataSelect                = 0x0523,
  535.     kMediaChangedNonPrimarySourceSelect                = 0x0524,
  536.     kMediaTrackReferencesChangedSelect                = 0x0525,
  537.     kMediaGetSampleDataPointerSelect                = 0x0526,
  538.     kMediaReleaseSampleDataPointerSelect            = 0x0527,
  539.     kMediaTrackPropertyAtomChangedSelect            = 0x0528,
  540.     kMediaSetTrackInputMapReferenceSelect            = 0x0529,
  541.     kMediaSetVideoParamSelect                        = 0x052B,
  542.     kMediaGetVideoParamSelect                        = 0x052C,
  543.     kMediaCompareSelect                                = 0x052D,
  544.     kMediaGetClockSelect                            = 0x052E,
  545.     kMediaSetSoundOutputComponentSelect                = 0x052F,
  546.     kMediaGetSoundOutputComponentSelect                = 0x0530,
  547.     kMediaSetSoundLocalizationDataSelect            = 0x0531,
  548.     kMediaGetInvalidRegionSelect                    = 0x053C,
  549.     kMediaSampleDescriptionB2NSelect                = 0x053E,
  550.     kMediaSampleDescriptionN2BSelect                = 0x053F,
  551.     kMediaQueueNonPrimarySourceDataSelect            = 0x0540,
  552.     kMediaFlushNonPrimarySourceDataSelect            = 0x0541,
  553.     kMediaGetURLLinkSelect                            = 0x0543,
  554.     kMediaMakeMediaTimeTableSelect                    = 0x0545,
  555.     kMediaHitTestForTargetRefConSelect                = 0x0546,
  556.     kMediaHitTestTargetRefConSelect                    = 0x0547,
  557.     kMediaGetActionsForQTEventSelect                = 0x0548,
  558.     kMediaDisposeTargetRefConSelect                    = 0x0549,
  559.     kMediaTargetRefConsEqualSelect                    = 0x054A,
  560.     kMediaSetActionsCallbackSelect                    = 0x054B,
  561.     kMediaPrePrerollBeginSelect                        = 0x054C,
  562.     kMediaPrePrerollCancelSelect                    = 0x054D,
  563.     kMediaExecuteOneActionSelect                    = 0x054E,
  564.     kMediaEnterEmptyEditSelect                        = 0x054F,
  565.     kMediaCurrentMediaQueuedDataSelect                = 0x0550
  566. };
  567. enum { uppPrePrerollCompleteProcInfo = 0x00000EC0 };             /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  568. #define NewPrePrerollCompleteProc(userRoutine)                     (PrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrePrerollCompleteProcInfo, GetCurrentArchitecture())
  569. #define CallPrePrerollCompleteProc(userRoutine, mh, err, refcon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppPrePrerollCompleteProcInfo, (mh), (err), (refcon))
  570.  
  571. #if PRAGMA_STRUCT_ALIGN
  572.     #pragma options align=reset
  573. #elif PRAGMA_STRUCT_PACKPUSH
  574.     #pragma pack(pop)
  575. #elif PRAGMA_STRUCT_PACK
  576.     #pragma pack()
  577. #endif
  578.  
  579. #ifdef PRAGMA_IMPORT_OFF
  580. #pragma import off
  581. #elif PRAGMA_IMPORT
  582. #pragma import reset
  583. #endif
  584.  
  585. #ifdef __cplusplus
  586. }
  587. #endif
  588.  
  589. #endif /* __MEDIAHANDLERS__ */
  590.  
  591.